16. Statistica descrittiva#
La statistica descrittiva si occupa di descrivere e riassumere le informazioni contenute nei dati disponibili, con lo scopo di:
comunicare il maggior numero di informazioni rilevanti
nella maniera più semplice e sintetica possibile
Questo, in accordo con la percezione umana todo, avviene tramite indicazioni di:
posizione, come la media, la mediana, la moda, o loro variazioni sul tema
dispersione, come la deviazione standard, la varianza, lo scarto interquartile,…
forma, come skewness o curtosi, o momenti di ordine superiore
correlazione o dipendenza todo correlazione non è dipendenza, fare un riferimento; è necessario dedurre una dipendenza? E” tra i compiti della statistica descrittiva?
Oggi sono disponibili librerie e strumenti informatici gratuiti e liberi per l’analisi e la rappresentazione dei dati. Ad esempio, native o compatibili con Python,
pandas, e geoapndas per dati geografici
plotly come libreria grafica (con dash come ambiente per lo sviluppo di semplici app interattive)
…
Per una galleria di esempi, si rimanda agli esempi e alle risorse messe a disposizione direttamente dagli sviluppatori, come ad esempio i grafici elementari, o i grafici frequentemente usati in statistica, e un”introduzione con le impostazioni di base. Per un livello di dettaglio maggiore, è spesso possibile consultare i file sorgenti con l’implementazione degli strumenti resi disponibili su repository pubblici: nel caso di plotly è possibile consultare questi file nel repository pubblico.
16.1. Dimensione dei dati#
variabili 1-dimensionali
variabili 2-dimensionali o di dimenione piccola
variabili di grandi dimensioni: possono essere necessarie tecniche di riduzione dei dati per far emergere le proprietà significative contenute nei dati raccolti
16.2. Rappresentazione grafica#
EDA: exploratory data analysis. Può essere utilizzata in applicazioni di statistica descrittiva o nelle prime fasi di applicazioni di statistica inferenziale, «per vedere che faccia hanno i dati raccolti» e per fare una prima selezione dei metodi da applicare nelle fasi successive dell’indagine.
Attualmente, sono disponibili i mezzi informatici e un gran numero di librerie per l’analisi dati, dall’elaborazione alla rappresentazione.
16.3. Variabili 1-dimensionali#
import plotly.express as px
data = px.data.iris()
data.head()
| sepal_length | sepal_width | petal_length | petal_width | species | species_id | |
|---|---|---|---|---|---|---|
| 0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa | 1 |
| 1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa | 1 |
| 2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa | 1 |
| 3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa | 1 |
| 4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa | 1 |
# !pip install plotly==5.10
!pip install plotly==5.24
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: plotly==5.24 in /home/davide/.local/lib/python3.8/site-packages (5.24.0)
Requirement already satisfied: tenacity>=6.2.0 in /home/davide/.local/lib/python3.8/site-packages (from plotly==5.24) (8.0.1)
Requirement already satisfied: packaging in /home/davide/.local/lib/python3.8/site-packages (from plotly==5.24) (24.1)
WARNING: Error parsing dependencies of arcgis: .* suffix can only be used with `==` or `!=` operators
keyring (<=21.8.*,>=19)
~~~~~~~^
WARNING: Error parsing dependencies of quilt3: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier
urllib3 (<1.26,>=1.25.4numpy>=1.14.0) ; extra == 'tests'
~~~~~~~~~~~~~~~^
WARNING: Error parsing dependencies of distro-info: Invalid version: '0.23ubuntu1'
WARNING: Error parsing dependencies of python-debian: Invalid version: '0.1.36ubuntu1'
import plotly.io as pio
import plotly.express as px
import plotly.offline as py
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", size="sepal_length")
fig.show()
# Display Plotly chart
import plotly.graph_objects as go
import plotly.io as pio
fig = go.Figure()
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[1, 4, 9], name="y = x^2"))
fig.show()
"""
# Force MathJax to re-render
from IPython.display import display, Javascript
display(Javascript("MathJax.Hub.Queue(['Typeset', MathJax.Hub]);"))
"""
'\n# Force MathJax to re-render\nfrom IPython.display import display, Javascript\ndisplay(Javascript("MathJax.Hub.Queue([\'Typeset\', MathJax.Hub]);"))\n'
import plotly.express as px
# import plotly.io as pio
# pio.renderers.default = "iframe_connected"
df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length', color="species")
fig.show()
# all three of these worked
# fig.show(renderer='iframe')
# fig.show(renderer='iframe_connected')
# fig.show(renderer='colab')